In project planning, tasks are usually planned to keep all resources (such as human resources or mechanical resources) fully utilized, meaning that the resources have minimal or no idle periods. However, the following situations commonly arise during the execution of a project: (1) a task gets blocked because of outside factors, rendering a resource idle; (2) a task gets delayed, resulting in blockage of a successor dependent task, and resulting in a resource for the dependent task becoming idle; (3) a resource finishes its task early, but is not able to start the next task because of a dependency or constraint, resulting in the resource becoming idle; or (4) a resource has an idle period which could not be fulfilled at planning time. On the other hand, in almost every project in every industry or domain, there are tasks which have the following attributes: (1) low priority; (2) capable of being started and stopped multiple times; (3) high time-flexibility; (4) generic (i.e., not requiring a specific skill); and (5) capable of being done by more than one resource in parallel.